맨위로가기

참조 무결성

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

참조 무결성은 데이터베이스에서 데이터의 일관성을 유지하기 위한 개념으로, 형식적 정의와 선언적 참조 무결성(DRI)으로 구분된다. 형식적 정의는 포함 종속성을 통해 수학적으로 표현되며, 튜플 생성 종속성의 특수한 형태로 간주된다. 선언적 참조 무결성은 SQL 데이터베이스에서 외래 키 제약 조건을 통해 구현되며, 데이터베이스 시스템에 따라 사용자 권한 관리에도 적용될 수 있다. 참조 무결성은 데이터베이스 내의 테이블 간 관계를 정의하고 데이터의 정확성을 보장하는 데 중요한 역할을 한다.

더 읽어볼만한 페이지

  • 데이터베이스 관리 시스템 - 트랜잭션 처리
    트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다.
  • 데이터베이스 관리 시스템 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
  • 데이터베이스 - 지식 베이스
    지식 베이스는 특정 주제 정보를 체계적으로 저장 및 관리하며 규칙 기반 추론으로 새로운 지식 도출에 활용되고, 웹 콘텐츠 관리 및 지식 관리 시스템으로 확장되어 온톨로지를 이용, 인공지능 기술과 결합하여 문제 해결책을 제시하고 경험을 통해 학습하는 시스템이다.
  • 데이터베이스 - 화이트리스트
    화이트리스트는 특정 대상만 허용하고 나머지는 차단하는 접근 제어 목록으로, 정보보안, 무역, 금융 등 다양한 분야에서 활용되지만, 목록 선정 기준의 불명확성, 사회적 문제점 등의 위험성으로 투명하고 엄격한 관리가 필요하다.
참조 무결성

2. 형식적 정의

참조 무결성은 포함 종속성 개념을 사용하여 수학적으로 정의할 수 있다.[3] 포함 종속성은 튜플 생성 종속성(TGD)의 특수한 형태이며, 추론 규칙으로 공리화할 수 있고, PSPACE-완전 문제로 결정할 수 있다.[4]

2. 1. 포함 종속성

포맷을 갖춘 두 (아마도 동일한) 술어 RS에 대한 '''포함 종속성'''은 R[A_1, ..., A_n] \subseteq S[B_1, ..., B_n]로 표기하며, 여기서 A_i, B_iRS의 서로 다른 속성(열 이름)이다.[3] 이는 R의 팩트에 대해 열 A_1, ..., A_n에 나타나는 값들의 튜플이 S의 어떤 팩트에 대해 열 B_1, ..., B_n에서도 값들의 튜플로 나타나야 함을 의미한다.

이러한 제약 조건은 규칙의 양쪽에 관계 원자가 하나만 있는 튜플 생성 종속성(TGD)의 특정 형식이다.[3] 일차 논리에서 이는 \forall \vec{x},\vec{y} . (R(\vec{x},\vec{y}) \rightarrow \exists \vec{z} . S(\vec{x},\vec{z}))로 표현될 수 있으며, 여기서 \vec{x}RS가 공유하는 변수의 벡터(크기는 n)이며, TGD의 본문이나 머리에서 변수가 여러 번 나타나지 않는다.

포함 종속성 간의 논리적 함축은 추론 규칙으로 공리화될 수 있으며[4] PSPACE 알고리즘에 의해 결정될 수 있다. 이 문제는 선형 경계 오토마톤의 수용 문제로부터의 축소를 통해 PSPACE-완전으로 나타낼 수 있다.[4] 그러나 포함 종속성 또는 함수 종속성이 될 수 있는 종속성 간의 논리적 함축은 모노이드에 대한 단어 문제로부터의 축소를 통해 결정 불가능하다.[4]

3. 선언적 참조 무결성 (DRI)

'''선언적 참조 무결성'''(DRI)은 SQL 데이터베이스에서 데이터 무결성을 보장하는 방법 중 하나이다.

직원 데이터베이스에서 직원은 특정 부서에 소속되어 근무하며, 관련 정보는 데이터베이스에 기록되어 관리된다. 직원 관계 변수(Employees 테이블)의 "부서 번호" 속성은 외부 키로 지정되어, 부서 관계 변수의 기본 키인 "부서 번호" 속성을 참조한다. 만약 특정 부서에 직원이 근무하고 있다면, 해당 부서 정보를 부서 관계 변수에서 함부로 삭제할 수 없다. 이는 참조 무결성을 위반하는 것이 되기 때문에 관계형 데이터베이스 관리 시스템(RDBMS)에 의해 삭제가 제한된다(참조 무결성 제약 조건이 연쇄 삭제를 허용하지 않는 경우).[6]

3. 1. SQL 에서의 의미

SQL에서 참조 무결성은 주로 외래 키 제약 조건을 통해 구현된다. 외래 키는 다른 테이블(참조된 테이블)의 기본 키를 참조하여 두 테이블 간의 관계를 명시적으로 정의한다. 참조 테이블에 새로운 행을 삽입하거나, 참조된 테이블의 행을 UPDATE 또는 DELETE할 때 참조 무결성 제약 조건이 적용된다. DRI 작업은 CASCADE, NO ACTION, SET NULL, SET DEFAULT 등의 옵션을 통해 제어할 수 있다.[6] 자체 참조도 가능하지만, MS SQL Server에서는 완전히 구현되지 않았다.[5]

예를 들어, 직원 데이터베이스는 직원이 속한 부서 정보를 보관한다. 직원 관계 변수(사원 테이블)의 "부서 번호" 속성은 외부 키로 선언되며, 부서 관계 변수의 기본 키로 선언된 "부서 번호" 속성을 참조한다. 만약 특정 부서에 현재 근무하는 직원이 있다면, 해당 부서 정보를 부서 관계 변수에서 삭제하는 것은 참조 무결성을 파괴하므로, 관계형 데이터베이스 관리 시스템(RDBMS)에 의해 삭제 실행이 저지된다(참조 무결성 제약 조건이 연쇄 삭제를 허용하지 않는 경우).

3. 2. 제품별 의미

마이크로소프트 SQL 서버에서 DRI라는 용어는 데이터베이스 개체에 대한 사용자 권한 할당에도 적용된다. 데이터베이스 사용자에게 DRI 권한을 부여하면 테이블에 외래 키 제약 조건을 추가할 수 있다.[7]

4. 예제

직원 데이터베이스는 직원이 근무하는 부서의 정보를 유지하고 있다. 직원 관계 변수(Employees 테이블)의 "부서 번호" 속성은 외부 키로 선언되고, 부서 관계 변수의 기본 키로 선언된 "부서 번호" 속성을 참조하고 있다.[1] 어떤 부서에서 실제로 근무하고 있는 직원이 있으면 해당 부서의 정보를 부서 관계 변수에서 제거하는 것은 참조 무결성을 파괴하기 때문에 관계형 데이터베이스 관리 시스템(RDBMS)에 의해 제거 실행은 저지당할 것이다(참조 무결성 제약 조건이 연쇄 삭제를 허용하지 않는 경우).[1]

참조

[1] 웹사이트 Referential Integrity http://databases.abo[...] About.com 2011-03-20
[2] 서적 Database Systems Cengage Learning 2013
[3] 웹사이트 A Tutorial on Database Dependencies https://www.knaw.nl/[...] University of California Santa Cruz & IBM Research - Almaden 2021-12-10
[4] 서적 Foundations of Databases http://webdam.inria.[...] Addison-Wesley 1994
[5] 웹사이트 Error message 1785 occurs when you create a FOREIGN KEY constraint that may cause multiple cascade paths http://support.micro[...] microsoft.com 2009-01-24
[6] 간행물 ANSI/ISO/IEC 9075-1:2003, Information technology—Database languages—SQL
[7] 웹사이트 Managing Users Permissions on SQL Server http://www.databasej[...] Database Journal 2006-12-17



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com